In many applications, it is desirable to have an indication of the presence of moving object. For example, traffic patterns at the entry/exit of a retail establishment can provide useful marketing data, and can assist in decision-making relating to staffing and security. A video camera can be used as a sensor that can detect moving objects. Some known approaches track a moving object based on historical data. One common approach uses Kalman (or similar predictive) filtering, which is often based on historical data relating to object movement. Other approaches use discrimination in order to determine whether an object is the same object from frame to frame. Sometimes, one or more parameters such as color or texture are used as a signature that is observed in one frame to have one value; all of the pixels of the next frame are then examined for the occurrence of that same value. Most of these approaches are computationally expensive.
While most known approaches operate on a full resolution video image from a video camera or similar recording means, it may be advantageous not to operate on the full resolution image in order to track or count a moving object. Operating on a lower resolution image can be less computationally expensive, and still provide for accurate counting or tracking of moving objects.
In previously-known systems and methods, tracking moving objects has been typically achieved by combining algorithms to solve several different problems independently. The main problems to solve are object detection, object tracking, and object classification. There are a wide variety of algorithms that exist to solve each of these problems. Most prior art systems and methods have been developed independent of image resolution, although the prevailing wisdom is that a higher resolution will give more data to work with, and thus a more accurate result.
Object detection is the process of locating objects in an image. Some object detection algorithms have been developed purely for video, and some have been developed for still frames, but can be applied to video. Many of these methods are based on image segmentation methods such as region growing, edge detection, texture analysis, etc. There are also learning methods such as neural networks and support vector machines that must trained with known input data. Video based methods typically use motion information (pixel changes between frames) to help identify moving objects. Video methods may use background modeling, or pixel modeling to identify when a pixel change is significant enough to be an object, and not just noise or shadows. Object tracking associates objects found in a previous frame with objects found in the current frame. Typical methods include path predication based on previous location and motion, and comparisons of object characteristics (signatures) such as colour, luminance, size, shape, etc. Object classification or discrimination can be done using neural networks, but these require training using a set of known data. Support vector machines are another solution, which also requires training data. Other classification methods include shape detection, size analysis, pose analysis, etc. For people detection, some methods have made use of face detection algorithms. As a result, the previously-known systems and methods for tracking objects have tended to be computationally expensive. This computational complexity increases as the image resolution and frame rate increase.
It is, therefore, desirable to provide a method and system for tracking or counting moving objects which is less computationally demanding.